{{tag>groupe}}

====== Créer un environnement de test des outils ubuntu-fr ======

===== Pré-requis =====

Il faut bien évidement des connaissances de base et des programmes pré-installé pour pouvoir se monter son environnement de test ubuntu-fr. Voici une liste des éléments à avoir et connaître, si il en manque, n'hésitez pas à les ajouter.
  * Savoir utiliser le [[:terminal]] pour les commandes de base
  * Avoir installé et savoir utiliser le gestionnaire de versions [[:bzr|bazaar]]
  * Avoir un serveur web ([[:apache]] ou [[:nginx]]) avec le langage de script [[:php]] et le serveur de base de données [[:mysql]]

Nous ne détaillerons pas la configuration des outils ci-dessus (virtual hosts, configuration, …).

===== Les différents outils utilisés =====

La liste complète de nos projets web se trouve sur [[https://launchpad.net/ubuntu-fr|launchpad]].

  * [[https://launchpad.net/ubuntu-fr-static| les éléments statiques]] avec du HTML, du CSS et du JS, pour les thèmes et autres éléments communs.
  * [[https://launchpad.net/ubuntu-fr-guide| les guides système]] est généré en suivant la [[https://wiki.ubuntu.com/DocumentationTeam/SystemDocumentation/BuildingDocumentation|documentation officielle]]
  * [[https://launchpad.net/ubuntu-fr-tour| la visite guidée]] est généré avec la traduction du [[https://launchpad.net/ubuntu-online-tour|projet officiel]]
  * [[https://launchpad.net/ubuntu-fr-doc| la documentation]] utilise [[http://dokuwiki.org|dokuwiki]]
  * [[https://launchpad.net/ubuntu-fr-forum| le forum]] utilise [[http://fluxbb.org/|fluxbb]]
  * [[https://launchpad.net/ubuntu-fr-planet| le planet]] utilise [[https://drupal.org/|Drupal]]
  * [[https://launchpad.net/ubuntu-fr-www| le portail Ubuntu-fr.org]] utilise [[https://drupal.org/|Drupal]]
  * [[https://launchpad.net/ubuntu-fr-traduire| le blog des traducteurs]] utilise [[https://drupal.org/|Drupal]]
  * [[https://launchpad.net/ubuntu-fr-party| le site ubuntu-party]] utilise [[http://wordpress.org/|wordpress]]

===== Installation =====

Nous installerons pour la suite tout dans le dossier **/var/www/** qui est celui par défaut de la plupart des serveurs web. Commençons par créer un dossier de travail **ubuntu-fr**

<code>
cd /var/www/
sudo mkdir ubuntu-fr
</code>

Les serveurs web tournent habituellement avec l'utilisateur système **www-data**, il faut donc bien penser à vérifier que cet utilisateur a les droits d'écriture et de lecture sur le dossier créé. De même votre compte utilisateur doit avoir les droits d'écrire et de lire sur le dossier, le plus simple étant de l'ajouter au groupe **www-data**. Si vous avez des soucis de droits à un moment ou un autre, c'est souvent à cause de ces soucis de propriété des fichiers et des permissions dessus.

Pour donner les droits à **www-data** sur notre nouveau dossier :
<code>
sudo chown -R www-data:www-data /var/www/ubuntu-fr
sudo chmod -R og+rw /var/www/ubuntu-fr
</code>

==== Les éléments « statiques » ====

Les éléments statiques ne nécessitent aucune configuration particulière, mis à part la configuration des serveurs virtuels associées. Pour les installer on va se servir simplement de la commande **bzr**.

<code>
cd /var/www/ubuntu-fr/
bzr branch lp:ubuntu-fr-static
bzr branch lp:ubuntu-fr-guide
bzr branch lp:ubuntu-fr-tour
</code>

Chaque commande crée son propre dossier dans lequel se trouvent tous les fichiers. Vous pouvez faire suivre la commande d'un nom de dossier personnalisé si vous ne souhaitez pas avoir le nom par défaut.

==== La documentation ====

Comme pour les éléments statiques on utilise bzr.

<code>
cd /var/www/ubuntu-fr/
bzr branch lp:ubuntu-fr-doc
</code>

Les fichiers obtenus sont la copie de ce que nous avons en production, mais il manque quelques éléments.

=== Les données ===
Le dossier **data** contenant les pages, les index, et tout un tas d'autres informations. Vous pouvez reprendre le dossier data fourni avec un dokuwiki normal pour le remplacer, et le copier dans le dossier de la documentation (dans **/var/www/ubuntu-fr/ubuntu-fr-doc/**).

Si vous placez cette documentation sur un serveur accessible de l'extérieur, il est recommandé d'activer le robots.txt en utilisant le fichier d'exemple fournit afin que votre version ne soit pas indexée par les moteurs de recherche.
<code>
cd /var/www/ubuntu-fr/ubuntu-fr-doc
cp robots.txt.dist robots.txt
</code>

=== La configuration ===
Ensuite nous allons configurer cet outil relativement à votre installation, tout se passe dans le dossier **conf** ou vous avez un fichier **local.protected.php.dist** qui contient sur nos serveurs tous les éléments propres à notre installation.
<code>
cd /var/www/ubuntu-fr/ubuntu-fr-doc/conf
cp local.protected.php.dist local.protected.php
</code>

On [[:tutoriel:comment_modifier_un_fichier|modifie ce fichier]] qui n'a pas grand chose à changer au final. Attention de bien laisser la ligne qui permet d'éloigner les moteurs de recherche :
  $conf['is_dev'] = 1;
  
Ensuite le deuxième élément simple à modifier est l'emplacement des fichiers statiques, par défaut réglé sur nos serveurs de développement. Pointez la valeur de **$conf['static_host']** sur votre propre serveur.

=== L'authentification ===

Enfin, la partie la plus compliquée est l'authentification.

Elle est réglée par défaut à **$conf['authtype']='plain';**. Cette configuration est suffisante pour faire vos tests, mais elle ne fonctionnera que si vous créez le fichier **users.auth.php** en renseignant un ou plusieurs comptes utilisateurs, ce fichier étant présent dans le même dossier de configuration.

Pour utiliser la base de donnée du forum comme nous, il faudra commenter la ligne contenant ce **plain** et on dé-commente tout le bloc précédent en renseignant les éléments d'authentification à la base de donnée de votre version du forum. À partir de là, la configuration des utilisateurs et des groupes d'utilisateurs est faite par le forum.

=== Astuces ===

Si on souhaite avoir plusieurs versions du code de la documentation (la version en production et une ou plusieurs versions de travail avec ses propres modifications pour les tester par exemple), il est intéressant d'externaliser le dossier **data** ainsi que le fichier de configuration **local.protected.php** et de les remplacer par des liens symboliques. Ceci permet par exemple de supprimer facilement un dossier avec le code sans toucher aux données, et également de ne pas dupliquer ces données entre les différentes versions de travail.


==== Le forum ===

FIXME


==== Les sites sous Drupal ====

Les branches des sites sous Drupal ne contiennent que les éléments propres aux sites, et non le code de Drupal. La première étape consiste donc à installer autant de Drupal que nécessaire. Suivez la documentation de cd CMS pour le faire. Il faudra configurer une base de donnée (FIXME fournir un contenu de bdd) et configurer tout ça.

Ensuite il faut se placer dans le dossier de Drupal et remplacer le dossier **sites** par un des dossiers obtenus avec **bzr**.

FIXME finir

